假设在周末舞会上,男士们和女士们进入舞厅时,各自排成一队。
跳舞开始时,依次从男队和女队的队头上各出一人配成舞伴。
若两队初始人数不相同,则较长的那一队中未配对者等待下一伦舞曲。
现写一算法模拟上述舞伴配对问题。
(C语言版本) 运行平台visual studio 2008
#include <stdio.h>
#define maxsize 7
typedef int elemtype;
typedef struct
{
elemtype queue[maxsize];
int front, rear;
}queuetype;
//初始化男队的人数
void initmalequeue(queuetype *qmale)
{
qmale->front=qmale->rear=maxsize - 1;
}
//初始化女队的人数
void initfemalequeue(queuetype *qfemale)
{
qfemale->front=qfemale->rear=(maxsize-2) - 1;
}
void menter(queuetype *Q, elemtype x, int max) //男队入队操作
{
if ((Q->rear+1)% max == Q->front )
printf("overflow/n"); //判断是否队满
else
{
Q->rear++; //队尾指针后移
Q->queue[Q->rear